當容器服務越來越多時,發現使用 CLI 方式進行管理或是除錯會有點些許麻煩,如果跨多個 EC2 更加繁瑣。Portainer 是一個非常不錯可用來管理容器的 UI 應用程式,不論是 remove、start、stop 或是看 log 都非常簡便。
同樣的我們使用容器建立 Portainer,
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
之後,透過 UI 我們可以看見如下圖的內容,所有有關容器資訊藉由 Portainer 都可以輕鬆管理。
如果我們要將多台 EC2 的容器服務給集中管理,可藉由 Endpoints 方式進行管理,這邊透過 Docker 的 tcp 方式進行連線存取,好讓 Portainer 能知道另一方的 EC2 Docker 服務。我們可以將要被 Portainer 管理的其它 EC2 (未安裝 Portainer) 近行以下設置,主要是 tcp://0.0.0.0:2375
將其給映射出來。
# vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
$ sudo systemctl daemon-reload
$ su
設置好後可以藉由 docker -H tcp://IP:2375 images
進行測試。
但有試過以下設定方式,不知道為什麼 docker 服務會掛掉,最後是用上面方式~
$ sudo vim /etv/docker/daemon.json
{"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]}
最後透過下面的圖進行設置,就可以完成集中管理容器
註冊部分,因為沒有使用集群在運行,選擇 Directly connect to the Docker API
。
記住當開啟 docker TCP 服務時記得要進行存取權限的設置...,否則有機會得不償失。透過 Portainer 可以輕鬆方便的管理 Spring boot 的容器服務,不過後面會講日誌的管理~今天就到這。